// app.js
App({
  globalData: {
    userInfo: null,
    todos: [],
    // 用户角色：1-普通用户，2-管理员
    userRole: 1
  },
  
  onLaunch: function() {
    // 获取本地存储的待办事项
    const todos = wx.getStorageSync('todos') || [];
    this.globalData.todos = todos;
    
    // 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          wx.getUserInfo({
            success: res => {
              this.globalData.userInfo = res.userInfo;
            }
          });
        }
      }
    });
  },
  
  // 添加待办事项
  addTodo: function(todo) {
    const todos = this.globalData.todos;
    todos.unshift(todo);
    this.globalData.todos = todos;
    wx.setStorageSync('todos', todos);
    return true;
  },
  
  // 更新待办事项
  updateTodo: function(id, updatedTodo) {
    const todos = this.globalData.todos;
    const index = todos.findIndex(item => item.id === id);
    if (index !== -1) {
      todos[index] = {...todos[index], ...updatedTodo};
      this.globalData.todos = todos;
      wx.setStorageSync('todos', todos);
      return true;
    }
    return false;
  },
  
  // 删除待办事项
  deleteTodo: function(id) {
    const todos = this.globalData.todos;
    const index = todos.findIndex(item => item.id === id);
    if (index !== -1) {
      todos.splice(index, 1);
      this.globalData.todos = todos;
      wx.setStorageSync('todos', todos);
      return true;
    }
    return false;
  },
  
  // 获取待办事项列表
  getTodos: function(filters = {}) {
    let todos = this.globalData.todos;
    
    // 按状态筛选
    if (filters.status !== undefined) {
      todos = todos.filter(todo => todo.status === filters.status);
    }
    
    // 按负责人筛选
    if (filters.responsible) {
      todos = todos.filter(todo => todo.responsible === filters.responsible);
    }
    
    // 按协同人筛选
    if (filters.collaborators) {
      todos = todos.filter(todo => 
        todo.collaborators && todo.collaborators.includes(filters.collaborators)
      );
    }
    
    // 按监督人筛选
    if (filters.supervisor) {
      todos = todos.filter(todo => todo.supervisor === filters.supervisor);
    }
    
    // 按月份筛选
    if (filters.month) {
      todos = todos.filter(todo => {
        const planDate = new Date(todo.planEndTime);
        return planDate.getMonth() + 1 === parseInt(filters.month);
      });
    }
    
    return todos;
  },
  
  // 获取统计数据
  getStatistics: function(filters = {}) {
    const todos = this.getTodos(filters);
    const total = todos.length;
    const completed = todos.filter(todo => todo.status === 'completed').length;
    const rate = total > 0 ? (completed / total * 100).toFixed(2) : 0;
    
    return {
      total,
      completed,
      rate
    };
  },
  
  // 设置提醒
  setReminder: function(todoId, reminderTime) {
    // 实际应用中，这里可能需要调用微信小程序的定时提醒API
    console.log(`为待办事项 ${todoId} 设置提醒时间: ${reminderTime}`);
  }
});